#ifndef GPS_H
#define GPS_H

#include "geocoordinates.h"
#include "gpsthread.h"
#include "serialportsettings.h"

// Класс для работы с GPS-приёмником.

enum ReceiverStatus {GPSon, GPSoff};  //состояния GPS-приёмника

class GPS: public QObject
{
    Q_OBJECT

public:
    GPS(void);
    ~GPS();
    bool Setup(const SerialPortSettings&, const QString&);
    bool TurnOn(void);
    bool TurnOff(void);
    ReceiverStatus GetStatus(void) const;
    bool GetCoordinates(GeoCoordinates&) const;
    bool GetInfo(nmeaINFO&);
private:
    QString name;
    SerialPortSettings settings;
    ReceiverStatus myStatus;
    GPSThread myThread;
    GeoCoordinates myCoord;
    bool ready, dataactual;
private slots:
    void SetCoordinates(void);
signals:
    void CoordinatesChanged(void);
};

#endif // GPS_H
